﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Texfina.Core.Web;
using System.Text;
using Texfina.Core.Common;
using Texfina.Entity.Co;
using Texfina.BOQry.Co;

using System.Collections;
using System.Data;
using System.IO;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Drawing.Printing;
using System.Globalization;

namespace CO
{
    public partial class wfOrdenCompra : PageBase
    {
        public const int _GRDLIST_STCONTRATO = 14;
        Decimal mtIgv;
        Decimal mtDesc;

        public string _STRSTCONTRATO
        {
            get { return (string)this.ViewState["_STRSTCONTRATO"]; }
            set { this.ViewState["_STRSTCONTRATO"] = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            Constants2 c = new Constants2();
            btnBuscarProv.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_FIND;
            btnBuscarPedido.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_FIND;
            btnBuscarCondPago.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_FIND;
            btnBuscarImport.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_FIND;

            btnGrabar.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_SAVENEW;

            btnSalir.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_EXIT;


            if (IsCallback) return;
            if (!Page.IsPostBack)
            {
                LoadCombos();
                dpEntregaPor.Enabled = true;
                mObetenerDatosPrevios();
                mCargarDatos();
            }
        }
        private void LoadCombos()
        {

            ETablaGeneral tablaGeneral = new ETablaGeneral();
            tablaGeneral.Id_tabla = "";

            WebHelper.LoadListControl2(dpEntregaPor, BLocal.Local_qry01(), "ds_local", "id_local");
            WebHelper.LoadListControl2(dpUsadoEn, BLocal.Local_qry01(), "ds_local", "id_local");
            WebHelper.LoadListControl2(dpTipo, BTablaGeneral.TablaGeneralFill("123"), "ds_item", "id_item");
            WebHelper.LoadListControl2(dpModalidad, BTablaGeneral.TablaGeneralFill("127"), "ds_item", "id_item");
            WebHelper.LoadListControl2(dpNoneda, BTablaGeneral.TablaGeneralFill("016"), "ds_item", "id_item");
            WebHelper.LoadListControl2(dpPrioridad, BTablaGeneral.TablaGeneralFill("027"), "ds_item", "id_item");
            WebHelper.LoadListControl2(dpProv, BProveedor.Proveedor_qry02(), "ds_raznombre", "id_clipro");

            EImportacion Eimp = new EImportacion();
            Eimp.Id_importa = "";
            Eimp.Ds_importa = "";
            WebHelper.LoadListControl2(dpImportacion, BImportacion.GetListFill02(Eimp), "Descripcion", "Codigo");

            String strTextoSeleccione = "Seleccione";

            dpEntregaPor.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));
            dpUsadoEn.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));
            dpTipo.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));
            dpModalidad.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));
            dpNoneda.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));
            dpPrioridad.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));
            dpProv.Items.Insert(0, new ListItem(strTextoSeleccione, "0"));


        }

        public void RefreshLoadNumbers()
        {
            LoadCombos();
            AddCallbackControl(dpEntregaPor);//posicion 0
            AddCallbackControl(dpUsadoEn);//posicion 0
            AddCallbackControl(dpTipo);//posicion 0
            AddCallbackControl(dpModalidad);//posicion 0
            AddCallbackControl(dpPrioridad);//posicion 0
            AddCallbackControl(dpNoneda);//posicion 0
            AddCallbackControl(dpProv);//posicion 0
        }
        private void mSalvarDatosGrilla()
        {
            try
            {
                //recorre la cantidad de items, por cada item la entidad oAsigHorario va almacenando , 
                //esto para que data que se va ingresando en la grilla no se pierda

                List<EDetProducto> lstSalvarDatos = new List<EDetProducto>();

                for (int i = 0; GVDetalleProducto.Rows.Count > i; i++)
                {
                    // la entidad almacena los items de la grilla 

                    EDetProducto oDetProducto = new EDetProducto();

                    // verificar si los valores ingresados en la grilla estan en label o texbox como tambien en un dropdowlinst

                    oDetProducto._Nu_Correla = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtNumCorrelativo")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtNumCorrelativo")).Text);
                    oDetProducto._Codigo = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdproducto")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdproducto")).Text);

                    oDetProducto._Pres = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdPres")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdPres")).Text);

                    oDetProducto._Producto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDsProducto")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDsProducto")).Text);
                    oDetProducto._Presenta = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPresentacion")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPresentacion")).Text);
                    oDetProducto._UM = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtUM")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtUM")).Text);
                    oDetProducto._Peso_Bruto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPesoBruto")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPesoBruto")).Text);

                    oDetProducto._Lote = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtLote")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtLote")).Text);

                    oDetProducto._fe_venc = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtFecVencimiento")).Text;
                    oDetProducto._fe_Entrega = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtFecEngrega")).Text;

                    oDetProducto._OP = string.IsNullOrEmpty(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdOP")).SelectedValue) ? string.Empty : Convert.ToString(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdOP")).Text);
                    oDetProducto._igvActivo = ((CheckBox)GVDetalleProducto.Rows[i].FindControl("chkBxIGV")).Checked;

                    oDetProducto._Cant = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtCantidad")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtCantidad")).Text);
                    oDetProducto._PreNeto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPneto")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPneto")).Text);
                    oDetProducto._PreUnit = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPU")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPU")).Text);



                    oDetProducto._C_Gasto = string.IsNullOrEmpty(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdUN")).SelectedValue) ? string.Empty : Convert.ToString(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdUN")).Text);
                    oDetProducto._id_Gasto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtidUn")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtidUn")).Text);
                    oDetProducto._C_Gasto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsUn")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsUn")).Text);

                    oDetProducto._idCosto = string.IsNullOrEmpty(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdCC")).Text) ? string.Empty : Convert.ToString(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdCC")).Text);
                    oDetProducto._idCosto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdccostos")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdccostos")).Text);
                    oDetProducto._C_Costos = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsCosto")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsCosto")).Text);

                    oDetProducto._Tipgasto = string.IsNullOrEmpty(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpTG")).SelectedValue) ? string.Empty : Convert.ToString(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpTG")).Text);


                    oDetProducto._id_tipgstimp = string.IsNullOrEmpty(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdGtoImport")).SelectedValue) ? string.Empty : Convert.ToString(((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdGtoImport")).Text);

                    oDetProducto._nu_pordscto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPorDesc")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPorDesc")).Text);

                    oDetProducto._Dscto = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDscto")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDscto")).Text);
                    oDetProducto._Igv = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIGV")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIGV")).Text);
                    oDetProducto._subTotal = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtSubTotal")).Text) ? 0 : Convert.ToDecimal(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtSubTotal")).Text);

                    oDetProducto._detalle = string.IsNullOrEmpty(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDescrip")).Text) ? string.Empty : Convert.ToString(((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDescrip")).Text);
                    //añade los valores de la entidad a la lista de la entidad

                    lstSalvarDatos.Add(oDetProducto);

                }
                // se crea una sesion para almacenar la lista que contiene los  datos.

                Session["SeslstSalvaDatos"] = lstSalvarDatos;
            }

            catch (Exception ex)
            {

                ex.ToString();
            }
        }
        protected void mCalculaTotal()
        {
            decimal deSuma = 0;
            decimal deTot;
            decimal detIgv;
            decimal detDesc;
            decimal total;
            decimal subtotal;
            deTot = 0;
            detDesc = 0;
            detIgv = 0;
            subtotal = 0;
            EDTipImpuesto dti = new EDTipImpuesto();
            DropDownList igv = new DropDownList();
            //decimal deDesc;
            dti.IdPeriodo = "2013"; // LLENAR CON SESION
            WebHelper.LoadListControl2(igv, BDeTipImpuesto.GetListFill_Qry01(dti), "mtIgv", "mtIgv");
            for (int x = 0; GVDetalleProducto.Rows.Count > x; x++)
            {
                var stIgv = ((CheckBox)GVDetalleProducto.Rows[x].FindControl("chkBxIGV")) as CheckBox;
                var chk = ((CheckBox)GVDetalleProducto.Rows[x].FindControl("chkBxSelect")) as CheckBox;



                TextBox txtCant = (TextBox)GVDetalleProducto.Rows[x].FindControl("txtCantidad");
                TextBox txtPU = (TextBox)GVDetalleProducto.Rows[x].FindControl("txtPU");
                TextBox txtigv = (TextBox)GVDetalleProducto.Rows[x].FindControl("txtIGV");
                TextBox txtDesc = (TextBox)GVDetalleProducto.Rows[x].FindControl("txtDscto");
                TextBox txtSubTotal_ = (TextBox)GVDetalleProducto.Rows[x].FindControl("txtSubTotal");
                TextBox PorcDesc = (TextBox)GVDetalleProducto.Rows[x].FindControl("txtPorDesc");

                if (stIgv.Checked == false)
                {


                    if (Convert.ToDecimal(PorcDesc.Text) == 0)
                    {
                        deSuma = Convert.ToDecimal(txtCant.Text) * Convert.ToDecimal(txtPU.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtSubTotal")).Text = deSuma.ToString();
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtDscto")).Text = "0.0000";
                    }
                    else
                    {

                        deSuma = Convert.ToDecimal(txtCant.Text) * Convert.ToDecimal(txtPU.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtSubTotal")).Text = deSuma.ToString();
                        mtDesc = (Convert.ToDecimal(PorcDesc.Text) / 100) * Convert.ToDecimal(txtSubTotal_.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtDscto")).Text = mtDesc.ToString();

                    }


                    ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtSubTotal")).Text = deSuma.ToString();
                    ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtIGV")).Text = "0.0000";
                    mtDesc = (Convert.ToDecimal(PorcDesc.Text) / 100) * Convert.ToDecimal(txtSubTotal_.Text);
                    ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtDscto")).Text = mtDesc.ToString();

                }
                else
                {

                    if (Convert.ToDecimal(PorcDesc.Text) == 0)
                    {

                        deSuma = Convert.ToDecimal(txtCant.Text) * Convert.ToDecimal(txtPU.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtSubTotal")).Text = deSuma.ToString();
                        mtIgv = Convert.ToDecimal(igv.SelectedItem.Text) * Convert.ToDecimal(txtSubTotal_.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtIGV")).Text = mtIgv.ToString();
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtDscto")).Text = "0.0000";
                    }
                    else
                    {

                        deSuma = Convert.ToDecimal(txtCant.Text) * Convert.ToDecimal(txtPU.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtSubTotal")).Text = deSuma.ToString();
                        mtDesc = (Convert.ToDecimal(PorcDesc.Text) / 100) * Convert.ToDecimal(txtSubTotal_.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtDscto")).Text = mtDesc.ToString();
                        mtIgv = (Convert.ToDecimal(txtSubTotal_.Text) - mtDesc) * Convert.ToDecimal(igv.SelectedItem.Text);
                        ((TextBox)GVDetalleProducto.Rows[x].FindControl("txtIGV")).Text = mtIgv.ToString();
                    }

                }


                deTot = deTot + deSuma;
                detDesc = detDesc + Convert.ToDecimal(txtDesc.Text);
                detIgv = detIgv + Convert.ToDecimal(txtigv.Text);
                txtDescuento.Text = detDesc.ToString();
                txtIgv_.Text = detIgv.ToString();
                total = (deTot - detDesc) + detIgv;

                subtotal = subtotal + Convert.ToDecimal(txtSubTotal_.Text);

                txtSTotal.Text = subtotal.ToString();
                txtTotal_.Text = total.ToString();

            }


        }

        protected void btnBuscarProv_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Session[Constants2.ConstSessionVar.SESION_PROV] = "_SESION_PROV";
                ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open('wfProvFind.aspx', null, 'height=400,width=750,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }

        protected void btnBuscarPedido_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                //PERSONA SOLICITANTE
                Session[Constants2.ConstSessionVar.SESION_PEDIDOPOR] = "_SESION_PEDIDOPOR";

                ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'WfPersonalBnd.aspx', null, 'height=400,width=700,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }

        protected void btnBuscarCondPago_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Session[Constants2.ConstSessionVar.SESION_FORMPAGO] = "_SESION_FORMPAGO";
                ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'WfCondicionPago.aspx', null, 'height=400,width=700,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);

            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }
        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            try
            {
                // crea la entidad tipo lista 
                //List<AsignacionHorarioEnt> lstAsigHorario = new List<AsignacionHorarioEnt>();
                // crea la entidad para obtener los campos que deseamos esten en blanco

                //AsignacionHorarioEnt asigHorario = new AsignacionHorarioEnt();

                List<EDetProducto> lstProd = new List<EDetProducto>();

                EDetProducto prod = new EDetProducto();

                // llega a ingresar siempre en cuando ya se tenga un registro en la grilla
                string str = Convert.ToString(GVDetalleProducto.Rows.Count + 1);
                if (GVDetalleProducto.Rows.Count > 0)
                {
                    //almacena en la entidad la informacion ingresada en la grilla
                    //salva los datos, hace que cuando se de agregar no se pierda la informacion ya ingresada

                    mSalvarDatosGrilla();

                    lstProd = (List<EDetProducto>)(Session["SeslstSalvaDatos"]);

                    //lstAsigHorario = (List<AsignacionHorarioEnt>)(Session["SeslstSalvaDatos"]);
                    //añade un registro mas en blaco

                    prod._Codigo = "";
                    prod._Pres = "";
                    prod._Producto = "";
                    prod._Presenta = "";
                    prod._Nu_Correla = str.PadLeft(3, '0');
                    prod._UM = "";
                    prod._Peso_Bruto = Convert.ToDecimal("0.000");
                    prod._Lote = "";
                    DateTime fecha_venc = DateTime.Today;
                    DateTime fecha_Entrega = DateTime.Today;
                    prod._fe_venc = fecha_venc.ToString();
                    prod._fe_Entrega = fecha_Entrega.ToString();
                    prod._OP = "";
                    prod._Cant = Convert.ToDecimal("0.000");
                    prod._PreNeto = Convert.ToDecimal("0.000");
                    prod._PreUnit = Convert.ToDecimal("0.000");
                    prod._id_Gasto = "";
                    prod._C_Gasto = "";
                    prod._idCosto = "";
                    prod._C_Costos = "";
                    prod._Tipgasto = "";
                    prod._id_tipgstimp = "";
                    prod._nu_pordscto = Convert.ToDecimal("0.000");
                    prod._Dscto = Convert.ToDecimal("0.000");
                    prod._Igv = Convert.ToDecimal("0.000");
                    prod._subTotal = Convert.ToDecimal("0.000");
                    prod._detalle = "";
                    // muestra el item en blanco

                    lstProd.Add(prod);
                    GVDetalleProducto.DataSource = lstProd;
                    GVDetalleProducto.DataBind();
                    Session["lstListadoGrilla"] = lstProd;
                    mCalculaTotal();
                }
                else
                {
                    // Añande el primer item en blando de la grilla
                    prod._Nu_Correla = str.PadLeft(3, '0');
                    prod._Codigo = "";
                    prod._Pres = "";
                    prod._Producto = "";
                    prod._Presenta = "";
                    prod._UM = "";
                    prod._Peso_Bruto = Convert.ToDecimal("0.000");
                    prod._Lote = "";

                    DateTime fecha_venc = DateTime.Today;
                    DateTime fecha_Entrega = DateTime.Today;

                    prod._fe_venc = fecha_venc.ToString();
                    prod._fe_Entrega = fecha_Entrega.ToString();
                    //prod._fe_venc = "";
                    //prod._fe_Entrega = "";
                    prod._OP = "";
                    prod._Cant = Convert.ToDecimal("0.000");
                    prod._PreNeto = Convert.ToDecimal("0.000");
                    prod._PreUnit = Convert.ToDecimal("0.000");
                    prod._nu_pordscto = Convert.ToDecimal("0.000");
                    prod._id_Gasto = "";
                    prod._C_Gasto = "";
                    prod._idCosto = "";
                    prod._C_Costos = "";
                    prod._Tipgasto = "";
                    prod._id_tipgstimp = "";
                    prod._Dscto = Convert.ToDecimal("0.000");
                    prod._Igv = Convert.ToDecimal("0.000");
                    prod._subTotal = Convert.ToDecimal("0.000");
                    prod._detalle = "";
                    lstProd.Add(prod);
                    //Muestra la grilla con un fila en blanco 
                    GVDetalleProducto.DataSource = lstProd;
                    GVDetalleProducto.DataBind();
                    Session["lstListadoGrilla"] = lstProd;
                    mCalculaTotal();
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
        }

        protected void btnBuscarImport_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Session[Constants2.ConstSessionVar.SESION_IMPORTACION] = "_SESION_IMPORTACION";
                ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'wfImportacionesBnd.aspx', null, 'height=400,width=700,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);

            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }


        protected void GVDetalleProducto_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            PageBase ri = new PageBase();
            ri.EditRowIndex = Convert.ToInt32(e.CommandArgument);


            switch (e.CommandName)
            {

                case Constants2.ConstGridRowCommand.GRIDEDIT:

                    Session[Constants2.ConstSessionVar.SESION_PRODUCTO_] = "SESION_PRODUCTO_";

                    ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'wfProducto.aspx', null, 'height=400,width=700,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);


                    break;
                case Constants2.ConstGridRowCommand.GRIDMST:


                    for (int i = 0; GVDetalleProducto.Rows.Count > i; i++)
                    {
                        var chk = ((CheckBox)GVDetalleProducto.Rows[i].FindControl("chkBxSelect")) as CheckBox;
                        if (chk.Checked)
                        {
                            // almacena en variables los items que va recorriendo

                            ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdproducto")).Text = hddCodigo.Value;
                            ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdPres")).Text = hddPres.Value;
                            ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDsProducto")).Text = hddProducto.Value;
                            ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPresentacion")).Text = hddPresenta.Value;
                            ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtUM")).Text = hddUm.Value;
                            ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPesoBruto")).Text = hddPesoBruto.Value;
                            //lblIdProducto = hddCodigo.Value;
                        }
                    }

                    break;
                case Constants2.ConstGridRowCommand.GRIDCALC:


                    mCalculaTotal();


                    break;

                case Constants2.ConstGridRowCommand.GRIDDELETE:
                    for (int i = 0; GVDetalleProducto.Rows.Count > i; i++)
                    {
                        var chk = ((CheckBox)GVDetalleProducto.Rows[i].FindControl("chkBxSelect")) as CheckBox;
                        if (chk.Checked)
                        {
                            // almacena en variables los items que va recorriendo

                            var LblOP = ((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdOP")).SelectedValue.Trim();
                            var LblIdproducto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdproducto")).Text.Trim();
                            var LblIdPres = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdPres")).Text.Trim();
                            var LblDsProducto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDsProducto")).Text.Trim();
                            var LblNum_Correla = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtNumCorrelativo")).Text.Trim();
                            var LblLote = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtLote")).Text.Trim();

                            //lblIdProducto = hddCodigo.Value;

                            EDetOrdenCompra doc = new EDetOrdenCompra();
                            doc.Id_periodo = "2013"; // llenar con sesion
                            doc.Id_op = LblOP.ToString();
                            doc.Id_ordenco = hddIdOC.Value;
                            doc.Nu_correla = LblNum_Correla.ToString();
                            doc.Nu_lote = LblLote.ToString();
                            doc.Id_producto = LblIdproducto.ToString();
                            doc.Id_prodprese = LblIdPres.ToString();
                            BDetOrdenCompra.DetOrderCompra_mnt02(doc);
                        }
                    }

                    GVDetalleProducto.DeleteRow(Convert.ToInt32(e.CommandArgument));
                    GVDetalleProducto.DataBind();

                    break;

            }

        }
        protected void GVDetalleProducto_RowDataBound(object sender, GridViewRowEventArgs e)
        {


            //decimal cant = 0;
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //llena la columna de la grila tipo dropdownlist con los tipos de horario.

                DropDownList cbGrillaOP = (DropDownList)e.Row.FindControl("dpdOP");
                DropDownList cbGrillaUN = (DropDownList)e.Row.FindControl("dpdUN");
                DropDownList cbGrillaTG = (DropDownList)e.Row.FindControl("dpTG");
                DropDownList cbGrillaTGImp = (DropDownList)e.Row.FindControl("dpdGtoImport");



                CheckBox chkIgv = (CheckBox)e.Row.FindControl("chkBxIGV");
                //EUnidadNegocio eu = new EUnidadNegocio();


                //eu.IdEmpresa = "001";
                //eu.IdUNegocio = "";

                //WebHelper.LoadListControl(cbGrillaUN, BUndNegocio.MG_UNegocio_qry04(eu), "dsUNegocio", "idUNegocio");
                WebHelper.LoadListControl2(cbGrillaTG, BTablaGeneral.MG_TablaGenDet_qry04("048", ""), "dsDescrip", "idCodigo");

                WebHelper.LoadListControl2(cbGrillaTGImp, BTablaGeneral.TablaGeneral_qry02("143"), "ds_item", "id_item");

                AddCallbackControl(cbGrillaUN);

                //cbGrillaUN.Items.Insert(0, new ListItem("Seleccione", "0"));
                cbGrillaTG.Items.Insert(0, new ListItem("Seleccione", "0"));
                cbGrillaOP.Items.Insert(0, new ListItem("Seleccione", "0"));
                cbGrillaTGImp.Items.Insert(0, new ListItem("Seleccione", "0"));

                cbGrillaUN.SelectedValue = (String)DataBinder.Eval(e.Row.DataItem, "_C_Gasto").ToString();

                cbGrillaOP.SelectedValue = (String)DataBinder.Eval(e.Row.DataItem, "_OP").ToString();
                cbGrillaTG.SelectedValue = (String)DataBinder.Eval(e.Row.DataItem, "_Tipgasto").ToString();
                cbGrillaTGImp.SelectedValue = (String)DataBinder.Eval(e.Row.DataItem, "_id_tipgstimp").ToString();
                chkIgv.Checked = (Boolean)DataBinder.Eval(e.Row.DataItem, "_igvActivo");

            }

            //mCalculaTotal();
        }

        protected void dpdUN_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList ddl = (DropDownList)sender;
            GridViewRow row = (GridViewRow)ddl.Parent.Parent;
            int idx = row.RowIndex;

            DropDownList ddl2 = (DropDownList)row.Cells[1].FindControl("dpdUN");
            DropDownList ddl3 = (DropDownList)row.Cells[1].FindControl("dpdCC");

            EUnidadNegocio eun = new EUnidadNegocio();
            eun.IdEmpresa = "001";// llenar con sesion
            eun.IdUNegocio = ddl2.SelectedValue;

            ddl3.Items.Insert(0, new ListItem("Seleccione", "0"));
            WebHelper.LoadListControl2(ddl3, BUndNegocio.MG_UNegocio_qry(eun), "dsCCosto", "idCCosto");


            for (int i = 0; GVDetalleProducto.Rows.Count > i; i++)
            {
                var chk = ((CheckBox)GVDetalleProducto.Rows[i].FindControl("chkBxSelect")) as CheckBox;

                if (chk.Checked)
                {
                    var idUN = ((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdUN")) as DropDownList;

                    ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtidUn")).Text = idUN.SelectedValue;
                    ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsUn")).Text = idUN.SelectedItem.Text;

                }
            }


            AddCallbackControl(ddl3);

        }

        protected void dpdCC_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; GVDetalleProducto.Rows.Count > i; i++)
            {
                var chk = ((CheckBox)GVDetalleProducto.Rows[i].FindControl("chkBxSelect")) as CheckBox;
                if (chk.Checked)
                {
                    // almacena en variables los items que va recorriendo

                    var idccostos = ((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdCC")) as DropDownList;

                    ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdccostos")).Text = idccostos.SelectedValue;
                    ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsCosto")).Text = idccostos.SelectedItem.Text;

                }
            }
            mCalculaTotal();
        }





        protected void btnGrabar_Click(object sender, ImageClickEventArgs e)
        {
            EOrdenCompra oc = new EOrdenCompra();
            EDetOrdenCompra doc = new EDetOrdenCompra();
            DropDownList idOC = new DropDownList();
            if (hddIdOC.Value == "")
            {
                WebHelper.LoadListControl2(idOC, BOrdenCompra.OrderCompra_qry02(), "id_OrdenCompra", "id_OrdenCompra");

                hddIdOC.Value = idOC.SelectedItem.Text;
                oc.Id_ordenco = hddIdOC.Value;
                doc.Id_ordenco = hddIdOC.Value;
            }
            else
            {
                oc.Id_ordenco = hddIdOC.Value;
                doc.Id_ordenco = hddIdOC.Value;
            }
            oc.Id_periodo = "2013";//llenar con sesion
            oc.Id_importa = dpImportacion.SelectedValue;
            oc.Id_cotiza = "000000";
            oc.Fe_ordenco = ucControlFecha1.Text;
            oc.Fe_entrega = ucControlFecha2.Text;
            oc.Id_docucom = "";
            oc.Nu_docu = "";
            oc.Id_clipro = dpProv.SelectedValue;
            oc.Id_clipro2 = dpProv.SelectedValue;
            oc.Id_clipro3 = dpProv.SelectedValue;
            oc.Id_condpago = txtCodPago.Text;
            oc.Id_personal = HiddPedidoPor.Value;
            oc.Id_local = dpEntregaPor.SelectedValue;
            oc.Id_local2 = dpUsadoEn.SelectedValue;
            oc.Id_personal2 = "0009814";// llenar con sesion
            oc.Ds_observa = txtObseracion.Text;
            oc.Id_vmoneda = dpNoneda.SelectedValue;
            oc.Mt_total = Convert.ToDecimal(txtTotal_.Text);
            oc.Id_modcomp = dpModalidad.SelectedValue;
            oc.Id_tipcomp = dpTipo.SelectedValue;
            oc.Id_prioridad = dpPrioridad.SelectedValue;
            oc.Id_aprueba = "";
            oc.St_aprueba = "T";
            oc.Id_autoriza = "";
            oc.St_ordenco = "T";
            oc.Id_ucrearec = "vsoto";//LLENAR DESDE LA SESION
            oc.Id_uupdarec = "vsoto";//LLENAR DESDE LA SESION
            oc.St_anulado = "0";
            oc.idEmpresa = "001"; //LLENAR DESDE LA SESION
            oc.stfactura = "ABIERTO";
            BOrdenCompra.OrderCompra_mnt03(oc);



            //------------------------Detalle de compras----------------------------------------------------    

            for (int i = 0; GVDetalleProducto.Rows.Count > i; i++)
            {
                //prodxUnd.Id_producto = txtidProducto.Text;

                var LblIdproducto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdproducto")).Text.Trim();
                var LblIdPres = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdPres")).Text.Trim();
                var LblDsProducto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDsProducto")).Text.Trim();
                var LblNum_Correla = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtNumCorrelativo")).Text.Trim();
                var LblPresentacion = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPresentacion")).Text.Trim();
                var LblUM = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtUM")).Text.Trim();
                var LblPesoBruto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPesoBruto")).Text.Trim();
                var LblLote = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtLote")).Text.Trim();
                var LblFecVencimiento = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtFecVencimiento")).Text.Trim();
                var LblFecEngrega = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtFecEngrega")).Text.Trim();
                var LblOP = ((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdOP")).SelectedValue.Trim();
                var LblCantidad = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtCantidad")).Text.Trim();
                var LblPneto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPneto")).Text.Trim();
                var LblPU = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPU")).Text.Trim();
                var LblTG = ((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpTG")).SelectedValue.Trim();
                var LblUN = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtidUn")).Text.Trim();
                var LblTGIMP = ((DropDownList)GVDetalleProducto.Rows[i].FindControl("dpdGtoImport")).SelectedValue.Trim();
                var LblprodDscto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtPorDesc")).Text.Trim();
                var LblIdccostos = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIdccostos")).Text.Trim();
                var LbldsCosto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtdsCosto")).Text.Trim();
                var LblDscto = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDscto")).Text.Trim();
                var LblIGV = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtIGV")).Text.Trim();
                var LblSubTotal = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtSubTotal")).Text.Trim();
                var LblObsev = ((TextBox)GVDetalleProducto.Rows[i].FindControl("txtDescrip")).Text.Trim();



                doc.Id_periodo = "2013";//llenar con sesion
                doc.Id_op = LblOP;

                doc.Nu_correla = LblNum_Correla;
                doc.Nu_lote = LblLote;
                doc.Id_producto = LblIdproducto;
                doc.Id_prodprese = LblIdPres;
                doc.Qt_producto = Convert.ToDecimal(LblCantidad);
                doc.Qt_difcierre = Convert.ToDecimal("0.0000");
                doc.Id_vmoneda = dpNoneda.SelectedValue;
                doc.Qt_pesobruto = Convert.ToDecimal(LblPesoBruto);
                doc.Qt_pesoneto = Convert.ToDecimal(LblPneto);
                doc.Mt_precuni = Convert.ToDecimal(LblPU);
                doc.Mt_igv = Convert.ToDecimal(LblIGV);
                doc.Mt_subtotal = Convert.ToDecimal(LblSubTotal);
                doc.Nu_pordscto = Convert.ToDecimal(LblprodDscto);
                doc.Mt_dscto = Convert.ToDecimal(LblDscto);
                doc.Id_ccosto = LblIdccostos;
                doc.Id_cgasto = LblUN;
                doc.Id_tipogsto = LblTG;
                doc.Id_tipgstimp = LblTGIMP;
                doc.St_gastodist = "0";
                doc.Fe_venclote = LblFecVencimiento;
                doc.Fe_entrega = LblFecEngrega;
                doc.Id_ucrearec = "vsoto"; //llenar con sesion
                doc.Id_uupdarec = "vsoto"; //llenar con sesion
                doc.St_anulado = "0";
                doc.idEmpresa = "001"; //llenar con sesion
                doc._Detalle = LblObsev.ToUpper();
                BDetOrdenCompra.DetOrderCompra_mnt01(doc);
            }
            lblMensaje.Text = "Datos grabados";

        }
        private void mObetenerDatosPrevios()
        {
            try
            {
                if (Session["htaOcompra"] != null)
                {
                    Hashtable htaDatos = new Hashtable();
                    htaDatos = (Hashtable)Session["htaOcompra"];
                    hddIdOC.Value = string.IsNullOrEmpty(htaDatos["Id_ordenco"].ToString()) ? string.Empty : htaDatos["Id_ordenco"].ToString();
                    hidVentana.Value = string.IsNullOrEmpty(htaDatos["in_ventana"].ToString()) ? string.Empty : htaDatos["in_ventana"].ToString();
                }
                else
                {
                    Session["htaOcompra"] = null;
                    Hashtable HtaDatos = new Hashtable();
                    Session["htaOcompraNuevo"] = HtaDatos;

                    HtaDatos = (Hashtable)Session["htaOcompraNuevo"];
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
        }
        private void mCargarDatos()
        {
            try
            {
                if (!string.IsNullOrEmpty(hddIdOC.Value))
                {
                    EOrdenCompra oCompra = new EOrdenCompra();

                    oCompra.Id_periodo = "2013"; //llenar con sesion
                    oCompra.Id_ordenco = string.IsNullOrEmpty(hddIdOC.Value) ? string.Empty : Convert.ToString(hddIdOC.Value);
                    oCompra.idEmpresa = "001";

                    EOrdenCompra oBtieneOC = new EOrdenCompra();
                    oBtieneOC = BOrdenCompra.mObtenerOC(oCompra);
                    hddCodigo.Value = oBtieneOC.Id_ordenco.ToString().Trim();
                    lblOC.Text = hddCodigo.Value;
                    ucControlFecha1.Text = oBtieneOC.Fe_ordenco.ToString().Trim();
                    dpProv.SelectedValue = oBtieneOC.Id_clipro.ToString().Trim();
                    dpEntregaPor.SelectedValue = oBtieneOC.Id_local.ToString().Trim();

                    lblPedidoPor.Text = oBtieneOC.Pedidop.ToString().Trim();
                    HiddPedidoPor.Value = oBtieneOC.Id_personal.ToString().Trim();
                    dpUsadoEn.SelectedValue = oBtieneOC.Id_local2.ToString().Trim();
                    lblEmitidoPor.Text = oBtieneOC.Emitidap.ToString().Trim();
                    HddIdEmitidopor.Value = oBtieneOC.Id_personal2.ToString().Trim();
                    dpPrioridad.SelectedValue = oBtieneOC.Id_prioridad.ToString().Trim();
                    txtObseracion.Text = oBtieneOC.Ds_observa.ToString().Trim();
                    txtCodPago.Text = oBtieneOC.Id_condpago.ToString().Trim();
                    lblCodPago.Text = oBtieneOC.dsCondPago.ToString().Trim();
                    dpTipo.SelectedValue = oBtieneOC.Id_tipcomp.ToString().Trim();
                    dpModalidad.SelectedValue = oBtieneOC.Id_modcomp.ToString().Trim();
                    dpImportacion.SelectedValue = oBtieneOC.Id_importa.ToString().Trim();
                    dpNoneda.SelectedValue = oBtieneOC.Id_vmoneda.ToString().Trim();
                    ucControlFecha2.Text = oBtieneOC.Fe_entrega.ToString();
                    txtTipCambio.Text = oBtieneOC.Mt_tc.ToString().Trim();

                    List<EDetProducto> lstoc = new List<EDetProducto>();

                    lstoc = BDetOrdenCompra.mListarOcompra(oCompra);

                    Session["seslstListaDetOC"] = lstoc;

                    GVDetalleProducto.DataSource = lstoc;

                    GVDetalleProducto.DataBind();



                    for (int r = 0; GVDetalleProducto.Rows.Count > r; r++)
                    {
                        var chk = ((CheckBox)GVDetalleProducto.Rows[r].FindControl("chkBxIGV")) as CheckBox;
                        var chkSelect = ((CheckBox)GVDetalleProducto.Rows[r].FindControl("chkBxSelect")) as CheckBox;

                        TextBox igv = (TextBox)GVDetalleProducto.Rows[r].FindControl("txtIGV");

                        if ((igv.Text) != "0")
                        {
                            chk.Checked = true;
                        }
                        else
                        {
                            chk.Checked = false;

                        }
                        mCalculaTotal();

                    }
                }
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }

        protected void btnSalir_Click(object sender, ImageClickEventArgs e)
        {
            this.Response.Redirect("wfOrdenCompraBnd.aspx");
        }

        protected void GVDetalleProducto_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            try
            {
                mSalvarDatosGrilla();
                int intFila = e.RowIndex;
                List<EDetProducto> lsListadoActual = (List<EDetProducto>)Session["SeslstSalvaDatos"];
                lsListadoActual.RemoveAt(intFila);
                Session["SeslstSalvaDatos"] = lsListadoActual;
                GVDetalleProducto.DataSource = lsListadoActual;
                GVDetalleProducto.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());

            }
        }

        protected void dpTG_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList ddl = (DropDownList)sender;
            GridViewRow row = (GridViewRow)ddl.Parent.Parent;
            int idx = row.RowIndex;
            DropDownList cbGrillaTG = (DropDownList)row.Cells[1].FindControl("dpTG");
            DropDownList cbGrillaUN = (DropDownList)row.Cells[1].FindControl("dpdUN");
            ECCostos tg = new ECCostos();
            tg.IdEmpresa = "001"; // LLENAR CON SESION
            tg.IdtipGasto = cbGrillaTG.SelectedValue;
            WebHelper.LoadListControl2(cbGrillaUN, BUndNegocio.MG_UNegocio_qry03(tg), "dsUNegocio", "idUNegocio");
            AddCallbackControl(cbGrillaTG);

        }

        protected void dpEntregaPor_SelectedIndexChanged(object sender, EventArgs e)
        {

        }


        public override void ExportReport(string key)
        {
            DataSet ds = (DataSet)this.GetDataReport(key);
            //if (ds.Tables[0].Rows.Count == 0)
            //{
            //    this.hdnMsgOPB.Value = this.CreatePostbackMessage("ATENCIÓN", "No se encotraron Resultados", TypeMessageAlert.atention, false, "");
            //    return;
            //}
            ExcelHelper.ToExcel(ds, "Data.xls", Response);

        }
        public override object GetDataReport(string key)
        {

            EParOCFillrpt objE = new EParOCFillrpt();
            // RHBORpt.IPersonal objBO = (RHBORpt.IPersonal)WCFHelper.GetObject<RHBORpt.IPersonal>(typeof(RHBORpt.Personal));
            //objE.IdEmpresa = Session[Constants.ConstSessionVar.EMPRESA].ToString();
            objE.IdEmpresa = "001";

            DateTime faño = Convert.ToDateTime(ucControlFecha1.Text);
            string faños = (string)faño.Year.ToString();//fecha de hoy sin la hora 0:00:00

            objE.IdAnio = "2013";
            objE.IdOrdenCompra = lblOC.Text;
            objE.IdEmpresa = "001";// llenar con sesion


            BOrdenCompra objOC = new BOrdenCompra();
            DataTable dt = objOC.OrderCompra_rpt02(objE);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;

        }

        public override void PrintReport(string key)
        {
            ReportDocument objRpt = new ReportDocument();
            DataSet ds = (DataSet)this.GetDataReport(key);

            //if (ds.Tables[0].Rows.Count == 0)
            //{ 
            //    this.hd
            //}
            objRpt.Load(this.MapPath(Constants2.ConstSistema.ROOT_FOLDER_PATH + "/co_ordenCompra_rpt.rpt"));
            objRpt.SetDataSource(ds.Tables[0]);
            MemoryStream ms = new MemoryStream();
            Response.Clear();
            ms = (MemoryStream)objRpt.ExportToStream(ExportFormatType.PortableDocFormat);
            objRpt.Dispose();
            objRpt = null;
            Response.AddHeader("Content-Disposition", "attachment;filename=ConsolidadoOrdenCompra.pdf");
            Response.Buffer = true;
            Response.ContentType = "application/pdf";
            ms.WriteTo(Response.OutputStream);
            Response.Flush();
            Response.End();
        }
        protected void btnImprimir_Click(object sender, ImageClickEventArgs e)
        {
            PrintReport("");
        }

    }
}